﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Popup.Master" AutoEventWireup="true"
    CodeBehind="TS_LeaveApprove.aspx.cs" Inherits="vHCS.K2App.MdlK2.TS_LeaveApprove" %>

<%@ Register Src="~/MdlK2/Controls/HR_ctrEmpHeader_Info.ascx" TagName="EmpHeader"
    TagPrefix="uc" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register Assembly="Core.Controls" Namespace="Core.Controls.Message" TagPrefix="msg" %>
<%@ Register Assembly="Core.Controls" Namespace="Core.Controls.Security" TagPrefix="sec" %>
<%@ Register Assembly="Core.Controls" Namespace="Core.Controls.DataReader" TagPrefix="core" %>
<%@ Register Assembly="Core.Controls" Namespace="Core.Controls.Validate" TagPrefix="core" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainToolbar" runat="server">
    <asp:Button ID="btnSaveTop" runat="server" Text="Submit" CssClass="btnSave" ValidationGroup="validateSave"
        OnClick="btnSave_Click" />
    <msg:MessageSetting ID="msgList" runat="server">
        <Items>
            <msg:Message Code="10081" />
            <msg:Message Code="10011" />
            <msg:Message Code="10256" />
            <msg:Message Code="10257" />
        </Items>
    </msg:MessageSetting>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <asp:HiddenField runat="server" ID="hEmpID" />
    <asp:HiddenField runat="server" ID="hLeaveRecordID" />
    <asp:HiddenField runat="server" ID="hApplicationLeaveID" />
    <asp:HiddenField runat="server" ID="hStatusEdit" />
    <asp:HiddenField runat="server" ID="hdfSN" />
    <asp:HiddenField runat="server" ID="hdfEformID" />
    <asp:HiddenField runat="server" ID="hdfuser" />
    <div style="display: none">
        <asp:TextBox ID="txtCLDays" Width="60" runat="server" ReadOnly="true" CssClass="inputReadOnly"></asp:TextBox>
        <asp:TextBox ID="txtLeaveTemp" Width="60" runat="server" ReadOnly="true" CssClass="inputReadOnly"></asp:TextBox>
    </div>
    <div class="controlWrapper">
        <uc:EmpHeader runat="server" ID="ucEmpHeader" />
        <div style="display: none">
            <telerik:RadDatePicker ID="dtpCurrentDate" runat="server">
            </telerik:RadDatePicker>
            <asp:TextBox ID="txtWorkPointTypeID" Width="60" runat="server" ReadOnly="true" CssClass="inputReadOnly"></asp:TextBox>
        </div>
    </div>
    <div style="display: none" id="divEmpID">
        <asp:Label ID="lblEmpID" runat="server" CssClass="validation" Text="Vui lòng chọn nhân viên trước khi nhập thông tin nghỉ"></asp:Label>
    </div>
    <div style="display: none">
        <asp:CustomValidator ID="valGrid" runat="server" ValidationGroup="validateSave" Display="Dynamic"
            CssClass="validation" ClientValidationFunction="dtgList_Validate" ErrorMessage="">
        </asp:CustomValidator>
    </div>
    <%----------------------------- Thông tin một phiếu nghỉ ----------------------%>
    <div class="controlWrapper">
        <div class="headerSession">
            <asp:Label ID="Label7" runat="server" Text="Thông tin một phiếu nghỉ"></asp:Label>
        </div>
        <div class="div6Column">
            <span class="require">* </span>
            <asp:Label ID="Label8" runat="server" CssClass="divNote" Text="Sau khi lưu phiếu nghỉ, hệ thống sẽ tạm trừ số ngày nghỉ của bạn"></asp:Label>
        </div>
        <div class="div6Column">
            <div class="label">
                <asp:Label ID="Label1" runat="server" Text="Loại nghỉ"></asp:Label>
                <span class="require">(*)</span>
            </div>
            <div class="div3Colum">
                <telerik:RadComboBox ID="cboWorkPoint" Width="100%" runat="server" CausesValidation="false"
                    AllowCustomText="false" EnableItemCaching="true" EnableLoadOnDemand="false" Filter="Contains"
                    OnItemsRequested="RadComboBox_ItemRequested" HighlightTemplatedItems="true" ValidationGroup="None"
                    DataTextField="Name" DataValueField="Id" DataSourceID="dtWorkPoint" MarkFirstMatch="true"
                    OnSelectedIndexChanged="cboWorkPoint_SelectedIndexChanged" AutoPostBack="true" Enabled="false">
                    <HeaderTemplate>
                        <ul class="comboHeader">
                            <li class="code">
                                <asp:Label ID="Label2" runat="server" Text="Mã loại"></asp:Label>
                            </li>
                            <li class="name">
                                <asp:Label ID="Label3" runat="server" Text="Tên loại"></asp:Label>
                            </li>
                            <li class="divClear"></li>
                        </ul>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <ul class="comboItem">
                            <li class="code">
                                <%#DataBinder.Eval(Container.DataItem, "Code")%>
                            </li>
                            <li class="name">
                                <%#DataBinder.Eval(Container.DataItem, "Name")%>
                            </li>
                        </ul>
                    </ItemTemplate>
                </telerik:RadComboBox>
                <core:CoreDataSource ID="dtWorkPoint" runat="server" SelectMethod="GetComboWorkPointByEmpID"
                    TypeName="vHCS.LS.Business.LS_WorkPointCollection" EnableCaching="false" MaximumRowsParameterName="">
                    <SelectParameters>
                        <asp:Parameter Name="Prefix" DefaultValue="" DbType="String" />
                        <asp:Parameter Name="AddNullItem" DefaultValue="true" DbType="Boolean" />
                        <asp:Parameter Name="GetTop" DefaultValue="false" DbType="Boolean" />
                        <asp:ControlParameter Name="EmpID" ControlID="hEmpID" PropertyName="Value" DbType="String" />
                    </SelectParameters>
                </core:CoreDataSource>
                <asp:RequiredFieldValidator ID="valFunction" runat="server" Display="Dynamic" CssClass="validation"
                    SetFocusOnError="true" ErrorMessage="Vui lòng chọn loại nghỉ" ControlToValidate="cboWorkPoint"
                    ValidationGroup="validateSave">
                </asp:RequiredFieldValidator>
            </div>
            <div class="label" style="margin-left: 0px">
                <asp:Label ID="Label2" runat="server" Text="Số phép còn lại"></asp:Label>
            </div>
            <div class="control">
                <asp:TextBox ID="txtRemainLeave" Width="60" runat="server" ReadOnly="true" CssClass="inputReadOnly"></asp:TextBox>
            </div>
        </div>
        <div class="divClear">
        </div>
        <asp:Panel ID="pnlComment" CssClass="div6Column" Visible="false" runat="server">
            <div class="label">
                <asp:Label ID="Label9" runat="server" Text="Lưu ý"></asp:Label>
            </div>
            <div class="merge3">
                <asp:TextBox ID="txtComment" Width="52%" runat="server" CssClass="inputMultiText"
                    ReadOnly="true" TextMode="MultiLine" Rows="4"></asp:TextBox>
            </div>
            <div class="divClear">
            </div>
        </asp:Panel>
        <div class="divSepearator">
        </div>
        <div class="divClear">
        </div>
        <div class="div6Column">
            <div class="label">
                <asp:Label ID="Label13" runat="server" Text="Tổng số phép có"></asp:Label>
            </div>
            <div class="control">
                <asp:TextBox ID="txtYearsDay" runat="server" Width="60" CssClass="inputReadOnly" ReadOnly="true"></asp:TextBox>
            </div>
            <div class="label">
                <asp:Label ID="Label14" runat="server" Text="Số phép đã nghỉ"></asp:Label>
            </div>
            <div class="control">
                <asp:TextBox ID="txtLeaveDay" runat="server" Width="60" CssClass="inputReadOnly" ReadOnly="true"></asp:TextBox>
            </div>
            <div class="label">
                <asp:Label ID="Label15" runat="server" Text="Số ngày nghỉ tối đa được đăng ký"></asp:Label>
            </div>
            <div class="control">
                <asp:TextBox ID="txtYearsDayActual" runat="server" Width="60" CssClass="inputReadOnly" ReadOnly="true"></asp:TextBox>
            </div>
        </div>
        <div class="divClear">
        </div>
        <div class="div6Column">
            <div class="label">
                <asp:Label ID="Label3" runat="server" Text="Từ ngày"></asp:Label>
                <span class="require">(*)</span>
            </div>
            <div class="div3Column">
                <div class="control">
                    <telerik:RadDatePicker ID="dtpFromDate" runat="server" OnSelectedDateChanged="dtpToDate_OnDateSelected"
                        AutoPostBack="true" Width="120px">
                        <ClientEvents OnDateSelected="ChangeDate" />
                        <DateInput Enabled="false"></DateInput>
                    </telerik:RadDatePicker>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="Dynamic"
                        CssClass="validation" SetFocusOnError="true" ErrorMessage="Vui lòng nhập từ ngày"
                        ControlToValidate="dtpFromDate" ValidationGroup="validateSave">
                    </asp:RequiredFieldValidator>
                </div>
                <div class="label">
                    <asp:Label ID="Label4" runat="server" Text="Đến ngày"></asp:Label>
                    <span class="require">(*)</span>
                </div>
                <div class="control">
                    <telerik:RadDatePicker ID="dtpToDate" runat="server" OnSelectedDateChanged="dtpToDate_OnDateSelected"
                        AutoPostBack="true" Width="120px">
                        <DateInput Enabled="false"></DateInput>
                    </telerik:RadDatePicker>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" Display="Dynamic"
                        CssClass="validation" SetFocusOnError="true" ErrorMessage="Vui lòng nhập đến ngày"
                        ControlToValidate="dtpToDate" ValidationGroup="validateSave">
                    </asp:RequiredFieldValidator>
                    <asp:CompareValidator ID="CompareValidator1" ControlToCompare="dtpFromDate" Display="Dynamic"
                        CssClass="validation" ValidationGroup="validateSave" SetFocusOnError="true" Operator="GreaterThanEqual"
                        ControlToValidate="dtpToDate" runat="server" ErrorMessage="Đến ngày phải lớn hơn (hoặc bằng) từ ngày">
                    </asp:CompareValidator>
                </div>
            </div>
            <div class="label">
                <asp:Label ID="Label5" runat="server" Text="Số phép đăng ký"></asp:Label>
            </div>
            <div class="control">
                <asp:TextBox ID="txtLeaveTaken" runat="server" Width="60" CssClass="inputReadOnly"></asp:TextBox>
            </div>
        </div>
        <div class="divClear">
        </div>
        <div id="divValidLeave">
            <asp:Panel ID="pnlValidate" CssClass="div2Column" Visible="false" runat="server">
                <asp:Label ID="Label16" runat="server" Text="" Width="100px"></asp:Label>
                <asp:Label ID="lblValidate" runat="server" CssClass="validation" Text="Số ngày nghỉ vượt quá số ngày có thực tế. Vui lòng kiểm tra lại"></asp:Label>
            </asp:Panel>
        </div>
        <div class="divClear">
        </div>
        <div class="div6Column">
            <div class="label">
                <asp:Label ID="Label6" runat="server" Text="Lý do nghỉ"></asp:Label>
            </div>
            <div class="div3Colum">
                <asp:TextBox ID="txtReason" runat="server" Width="100%" CssClass="inputText" ReadOnly="true"></asp:TextBox>
            </div>
        </div>
        <div class="div6Column">
            <div class="label">
                <asp:Label ID="Label10" runat="server" Text="Ghi chú cập nhật"></asp:Label>
            </div>
            <div class="div3Colum">
                <asp:TextBox ID="txtNoteUpdate" runat="server" Width="100%" CssClass="inputText" ReadOnly="true"></asp:TextBox>
            </div>
        </div>
        <div class="divClear">
        </div>
        <%----------------------------- Xem chi tiết phiếu nghỉ ----------------------%>
        <div class="div6Column">
            <div class="divAuto">
                <asp:CheckBox ID="chkDetail" runat="server" Text="Xem chi tiết phiếu nghỉ" onclick="setDisplay()"
                    Checked="false" /></div>
        </div>
        <div class="div6Column">
            <div class="labelNoText">
                &nbsp;</div>
            <div class="div3Colum" id="div1" style="float: left;">
                <telerik:RadGrid ID="dtgDetail" runat="server" Skin="Web20" Width="100%" AllowSorting="true"
                    AllowMultiRowSelection="True" GridLines="None" PageSize="10" Height="300px" AllowFilteringByColumn="false"
                    AutoGenerateColumns="False" AllowPaging="false" DataSourceID="dataDetail" OnItemDataBound="dtgDetail_ItemDataBound">
                    <MasterTableView Width="100%">
                        <Columns>
                            <telerik:GridTemplateColumn HeaderStyle-Width="40" HeaderText="STT" AllowFiltering="false"
                                ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <%# Container.ItemIndex + 1 + dtgDetail.PageSize * dtgDetail.CurrentPageIndex%>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridBoundColumn DataField="DateV" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="LSShiftID" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="IsHalfDay" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="IsHead" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="IsLast" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="IsAll" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="IsHeadE" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="IsLastE" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="IsAllE" Visible="false">
                            </telerik:GridBoundColumn>
                            <telerik:GridDateTimeColumn DataField="DateID" DataType="System.DateTime" DataFormatString="ddMMyyyy"
                                HeaderText="Ngày" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="200"
                                AllowFiltering="false">
                            </telerik:GridDateTimeColumn>
                            <telerik:GridTemplateColumn HeaderText="1/2 đầu ngày/ca" HeaderStyle-Width="15%"
                                ItemStyle-HorizontalAlign="Center" AllowFiltering="false">
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkHead" runat="server" onclick="eventCheck.checkHalf(this, 'chkAll', 'chkLast', 'chkHead')" Enabled="false" />
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="1/2 cuối ngày/ca" HeaderStyle-Width="15%"
                                ItemStyle-HorizontalAlign="Center" AllowFiltering="false">
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkLast" runat="server" onclick="eventCheck.checkHalf(this, 'chkAll', 'chkHead', 'chkLast')" Enabled="false"/>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="Cả ngày" HeaderStyle-Width="15%" ItemStyle-HorizontalAlign="Center"
                                AllowFiltering="false">
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkAll" runat="server" onclick="eventCheck.checkAll(this, 'chkAll', 'chkHead', 'chkLast')" Enabled="false"/>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                        </Columns>
                    </MasterTableView>
                </telerik:RadGrid>
                <core:CoreDataSource ID="dataDetail" runat="server" SelectMethod="SearchDetailScheduleEmp"
                    TypeName="vHCS.TS.Business.TS_LeaveRecordCollection" EnableCaching="False" MaximumRowsParameterName="">
                    <SelectParameters>
                        <asp:ControlParameter Name="EmpID" ControlID="hEmpID" PropertyName="Value" DbType="Int64" />
                        <asp:ControlParameter Name="FromDate" ControlID="dtpFromDate" PropertyName="SelectedDate" />
                        <asp:ControlParameter Name="ToDate" ControlID="dtpToDate" PropertyName="SelectedDate" />
                        <asp:ControlParameter Name="LeaveRecordID" ControlID="hLeaveRecordID" PropertyName="Value"
                            DbType="Int64" />
                        <asp:ControlParameter Name="StatusEdit" ControlID="hStatusEdit" PropertyName="Value"
                            DbType="String" />
                        <asp:ControlParameter Name="WorkPointID" ControlID="cboWorkPoint" DbType="Int64"
                            PropertyName="SelectedValue" />
                    </SelectParameters>
                </core:CoreDataSource>
            </div>
            <div class="divClear">
            </div>
        </div>
    </div>
    <div class="divClear">
    </div>
    <%----------------------------- Làm nhiều phiếu nghỉ trên cùng 1 đơn ----------------------%>
    <div class="controlWrapper">
        <div class="div6Column" style="display: none" id="divMessage">
            <%-- <div class="divAuto"> <asp:CheckBox ID="chkListRecord" runat="server" Text="Làm nhiều phiếu nghỉ trên cùng 1 đơn" onclick="setDisplayListRecord()" Checked="true"/></div> --%>
            <div class="divAuto">
                <font color="red"><b><i>
                    <asp:Label ID="Label11" runat="server" Text="Bạn đang có nhiều phiếu nghỉ trên cùng một đơn"></asp:Label></i></b></font>
            </div>
        </div>
        <div id="divListRecord">
            <div class="headerSession">
                <asp:Label ID="Label12" runat="server" Text="Danh sách phiếu nghỉ"></asp:Label>
            </div>
            <telerik:RadGrid ID="dtgList" runat="server" Skin="Web20" Width="100%" AllowSorting="true"
                AllowMultiRowSelection="True" GridLines="None" PageSize="10" Height="300px" AllowFilteringByColumn="false"
                AutoGenerateColumns="False" AllowPaging="True" DataSourceID="dataList">
                <MasterTableView Width="100%">
                    <Columns>
                        <telerik:GridBoundColumn DataField="LeaveRecordID" Visible="false">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="IsDeleted" Visible="false">
                        </telerik:GridBoundColumn>
                        <telerik:GridTemplateColumn HeaderStyle-Width="40" HeaderStyle-HorizontalAlign="Center"
                            HeaderText="STT" AllowFiltering="false" ItemStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <%# Container.ItemIndex + 1 + dtgList.PageSize * dtgList.CurrentPageIndex%>
                            </ItemTemplate>
                        </telerik:GridTemplateColumn>
                        <%--<telerik:GridTemplateColumn DataField="WorkPoint" HeaderText="Loại nghỉ" HeaderStyle-HorizontalAlign="Left">
                            <ItemTemplate>
                                <asp:LinkButton CssClass="gridEdit" ID="lnkTopic" CommandName="EditLeave" runat="server"><%# Eval("WorkPoint")%></asp:LinkButton>
                            </ItemTemplate>
                            <HeaderStyle Width="100px"></HeaderStyle>
                        </telerik:GridTemplateColumn>--%>
                        <telerik:GridBoundColumn DataField="WorkPoint" HeaderText="Loại nghỉ" HeaderStyle-Width="100px"
                            ItemStyle-HorizontalAlign="Center" AllowFiltering="false">
                        </telerik:GridBoundColumn>
                        <telerik:GridDateTimeColumn DataField="FromDate" HeaderText="Từ ngày" DataType="System.DateTime"
                            DataFormatString="ddMMyyyy" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="100"
                            HeaderStyle-HorizontalAlign="Center" AllowFiltering="false">
                        </telerik:GridDateTimeColumn>
                        <telerik:GridDateTimeColumn DataField="ToDate" HeaderText="Đến ngày" DataType="System.DateTime"
                            DataFormatString="ddMMyyyy" HeaderStyle-Width="100" ItemStyle-HorizontalAlign="Center"
                            HeaderStyle-HorizontalAlign="Center" AllowFiltering="false">
                        </telerik:GridDateTimeColumn>
                        <telerik:GridBoundColumn DataField="LeaveTaken" HeaderText="Số ngày" HeaderStyle-Width="50"
                            ItemStyle-HorizontalAlign="Center" AllowFiltering="false">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="Reason" HeaderText="Lý do" ItemStyle-HorizontalAlign="Left"
                            AllowFiltering="false" HeaderStyle-Width="40%">
                        </telerik:GridBoundColumn>
                    </Columns>
                    <PagerStyle Mode="NextPrevNumericAndAdvanced" PageButtonCount="5" HorizontalAlign="Left"
                        Position="Bottom" />
                </MasterTableView>
                <ClientSettings EnableRowHoverStyle="true">
                    <Selecting AllowRowSelect="True" />
                    <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="True" FrozenColumnsCount="1">
                    </Scrolling>
                </ClientSettings>
            </telerik:RadGrid>
            <core:CoreDataSource ID="dataList" runat="server" SelectMethod="SearchLeaveRecordList"
                TypeName="vHCS.TS.Business.TS_LeaveRecordCollection" EnableCaching="False" MaximumRowsParameterName="">
                <SelectParameters>
                    <asp:ControlParameter Name="ApplicationID" ControlID="hApplicationLeaveID" PropertyName="Value"
                        DbType="Int64" />
                </SelectParameters>
            </core:CoreDataSource>
        </div>
    </div>
    <div class="headerSession">
        <asp:Label ID="Label17" runat="server" Text="Danh sách các cấp phê duyệt"></asp:Label>
    </div>
    <div class="div6Column">
        <div class="label">
            <asp:Label ID="Label18" runat="server" Text="Tình trạng"></asp:Label>
            <span class="require">(*)</span>
        </div>
        <div class="control">
            <telerik:RadComboBox ID="cboStatus" runat="server" Width="100%" DataSourceID="dtsStatusApprove" DataTextField="Name" DataValueField="Value">
            </telerik:RadComboBox>
        </div>
        <core:CoreDataSource ID="dtsStatusApprove" runat="server" SelectMethod="GetActions"
                    TypeName="K2CoreLib.K2Utils" EnableCaching="False"
                    MaximumRowsParameterName="">
                    <SelectParameters>
                        <asp:QueryStringParameter Name="sn" QueryStringField="SN" DefaultValue="" />
                        <asp:QueryStringParameter Name="sharedUser" QueryStringField="SharedUser" DefaultValue="" />
                    </SelectParameters>
                </core:CoreDataSource>
        <asp:RequiredFieldValidator ID="validateStatus" runat="server" Display="Dynamic"
            CssClass="validation" SetFocusOnError="true" ErrorMessage="Vui lòng chọn tình trạng"
            ControlToValidate="cboStatus" ValidationGroup="validateSave">
        </asp:RequiredFieldValidator>
    </div>
    <div class="divClear">
    </div>
    <telerik:RadGrid ID="dtgListUser" runat="server" Skin="Web20" Width="100%" AllowSorting="true"
        AllowMultiRowSelection="True" GridLines="None" PageSize="10" Height="300px" AllowFilteringByColumn="false"
        AutoGenerateColumns="False" AllowPaging="True" DataSourceID="dataListUser">
        <MasterTableView Width="100%">
            <Columns>
                <telerik:GridDateTimeColumn DataField="UpdateDate" HeaderText="Ngày" ItemStyle-HorizontalAlign="Center"
                    HeaderStyle-Width="10%" DataType="System.DateTime" DataFormatString="ddMMyyyy">
                </telerik:GridDateTimeColumn>
                <telerik:GridBoundColumn DataField="UpdateUser" HeaderText="Tên người dùng" ItemStyle-HorizontalAlign="Left"
                    HeaderStyle-Width="10%">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="FullName" HeaderText="Tên nhân viên" ItemStyle-HorizontalAlign="Left"
                    HeaderStyle-Width="30%">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="Approval" HeaderText="Cấp phê duyệt" HeaderStyle-Width="15%"
                    ItemStyle-HorizontalAlign="Left">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="StatusName" HeaderText="Tình trạng" HeaderStyle-Width="15%"
                    ItemStyle-HorizontalAlign="Left">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="Comment" HeaderText="Ý kiến" ItemStyle-HorizontalAlign="Left">
                </telerik:GridBoundColumn>
            </Columns>
        </MasterTableView>
        <ClientSettings EnableRowHoverStyle="true">
            <Selecting AllowRowSelect="True" />
            <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="True" FrozenColumnsCount="1">
            </Scrolling>
        </ClientSettings>
    </telerik:RadGrid>
    <core:CoreDataSource ID="dataListUser" runat="server" SelectMethod="SearchListApprove"
        TypeName="vHCS.TS.Business.TS_LeaveRecordCollection" EnableCaching="False" MaximumRowsParameterName="">
        <SelectParameters>
            <asp:ControlParameter Name="ApplicationID" ControlID="hApplicationLeaveID" PropertyName="Value"
                DbType="Int64" />
        </SelectParameters>
    </core:CoreDataSource>

    <div class="formTitle">
        <div class="formToolbar">
            <asp:Button ID="btnSaveBot" runat="server" Text="Submit" CssClass="btnSave" ValidationGroup="validateSave"
                OnClick="btnSave_Click" />
        </div>
    </div>
    <telerik:RadAjaxManager ID="ajxManager" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="dtpToDate">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="dtgDetail" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtLeaveTaken" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="dtpToDate" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="pnlValidate" LoadingPanelID="pnlLoading" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="dtpFromDate">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="dtgDetail" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtLeaveTaken" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="dtpToDate" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="pnlValidate" LoadingPanelID="pnlLoading" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="cboWorkPoint">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="txtRemainLeave" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="pnlComment" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtWorkPointTypeID" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtCLDays" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtYearsDay" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtLeaveDay" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtYearsDayActual" LoadingPanelID="pnlLoading" />
                    <telerik:AjaxUpdatedControl ControlID="txtLeaveTemp" LoadingPanelID="pnlLoading" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="pnlLoading" runat="server">
    </telerik:RadAjaxLoadingPanel>
    <telerik:RadCodeBlock ID="radCodeBlock" runat="server">
        <script type="text/javascript">
            // xử lý nhập từ ngày -> tính đến ngày đối với nhóm loại nghỉ thai sản
            function ChangeDate(sender, args) {
                //Get control txtRemainLeave
                var txtWorkPointTypeID = document.getElementById('<%= txtWorkPointTypeID.ClientID %>');

                if (txtWorkPointTypeID.value == "5") { // if nhóm loại nghỉ thai sản
                    //Get control dpkNgayHieuLuc
                    var dtpFromDate = $find('<% = dtpFromDate.ClientID  %>');

                    //Get control dpkNgayHetHan
                    var dtpToDate = $find('<% = dtpToDate.ClientID  %>');

                    //Get control txtRemainLeave
                    var txtRemainLeave = document.getElementById('<%= txtRemainLeave.ClientID %>');

                    //Get control txtCLDays
                    var txtCLDays = document.getElementById('<%= txtCLDays.ClientID %>');

                    if (txtCLDays.value != '') {
                        //Lấy ngày đang được chọn trong dpkNgayHieuLuc
                        var fromdate = dtpFromDate.get_selectedDate();
                        //Tính số tháng từ txtRemainLeave
                        var month = parseInt(txtCLDays.value);
                        month = Math.round(month);

                        if (fromdate.getDate() > 1) {//Nếu ngày hiệu lực không phải là ngay 1
                            //Cộng dồn tháng
                            fromdate.setMonth(fromdate.getMonth() + parseInt(month));
                            fromdate.setDate(fromdate.getDate() - 1);
                        }
                        else {
                            fromdate.setMonth(fromdate.getMonth() + parseInt(month) - 1);
                            fromdate.setDate(daysInMonth(fromdate.getMonth(), fromdate.getYear()));
                        }
                        //gán ngày vào dtpToDate                    
                        dtpToDate.set_selectedDate(fromdate);
                    }
                } // end if nhóm loại nghỉ thai sản
            }

            var eventCheck = new eventCheck();

            // sự kiện trên lưới chi tiết ngày
            function eventCheck() {
                // xử lý check/uncheck check cả ngày
                this.checkAll = function (obj, objAll, objHead, objLast) {
                    var checkHead = obj.id.replace(objAll, objHead); // check 1/2 đầu
                    var checkLast = obj.id.replace(objAll, objLast); // check 1/2 cuối

                    // trước xử lý check
                    var leavetaken = document.getElementById("<%=txtLeaveTaken.ClientID%>").value;
                    leavetaken = leavetaken.replace(',', '.');

                    var rowLeaveOld = 0;
                    var rowLeaveNew = 0;
                    if (document.getElementById(checkHead).checked == true) rowLeaveOld = 0.5;
                    if (document.getElementById(checkLast).checked == true) rowLeaveOld += 0.5;

                    // xử lý check trên lưới
                    document.getElementById(checkHead).checked = obj.checked;
                    document.getElementById(checkLast).checked = obj.checked;

                    // sau khi xử lý check
                    if (document.getElementById(checkHead).checked == true) rowLeaveNew = 0.5;
                    if (document.getElementById(checkLast).checked == true) rowLeaveNew += 0.5;

                    // tính lại số ngày nghỉ
                    document.getElementById("<%=txtLeaveTaken.ClientID%>").value = parseFloat(leavetaken) - parseFloat(rowLeaveOld) + parseFloat(rowLeaveNew);
                }

                // xử lý check/uncheck 1/2 ngày
                this.checkHalf = function (obj, objAll, objOther, objSefl) {
                    var checkAll = obj.id.replace(objSefl, objAll); // check all
                    var checkOther = obj.id.replace(objSefl, objOther); // check other

                    // trước xử lý check
                    var leavetaken = document.getElementById("<%=txtLeaveTaken.ClientID%>").value;
                    leavetaken = leavetaken.replace(',', '.');

                    var rowLeaveOld = 0;
                    var rowLeaveNew = 0;
                    if (document.getElementById(checkOther).checked == true) rowLeaveOld = 0.5;
                    if (obj.checked == false) rowLeaveOld += 0.5;  // khac nhau cho nay ne                

                    // xử lý check trên lưới
                    if (document.getElementById(checkOther).checked == obj.checked && obj.checked == true)
                        document.getElementById(checkAll).checked = true;
                    else
                        document.getElementById(checkAll).checked = false;

                    // sau khi xử lý check
                    if (document.getElementById(checkOther).checked == true) rowLeaveNew = 0.5;
                    if (obj.checked == true) rowLeaveNew += 0.5;

                    // tính lại số ngày nghỉ
                    document.getElementById("<%=txtLeaveTaken.ClientID%>").value = parseFloat(leavetaken) - parseFloat(rowLeaveOld) + parseFloat(rowLeaveNew);

                    leavetaken = document.getElementById("<%=txtLeaveTaken.ClientID%>").value;
                    leavetaken = leavetaken.replace(',', '.');

                    // kiểm tra số ngày nghỉ có thỏa điều kiện
                    var LeaveTemp = document.getElementById("<%=txtLeaveTemp.ClientID%>").value; // số ngày nghỉ DB
                    LeaveTemp = LeaveTemp.replace(',', '.');
                    var YearsDayActual = document.getElementById("<%=txtYearsDayActual.ClientID%>").value; // số phép có TT
                    YearsDayActual = YearsDayActual.replace(',', '.');

                    var WorkPointTypeID = document.getElementById("<%=txtWorkPointTypeID.ClientID%>").value; // nhóm loại nghỉ

                    // đối với nhóm nghỉ sinh con (thai sản) thì ko cần kiểm tra
                    if (WorkPointTypeID != "5") {
                        if (parseFloat(leavetaken) > parseFloat(LeaveTemp) + parseFloat(YearsDayActual) && YearsDayActual != "") {
                            document.getElementById('divValidLeave').style.display = "";
                        }
                        else
                            document.getElementById('divValidLeave').style.display = "none";
                    }
                    else
                        document.getElementById('divValidLeave').style.display = "none";
                }

                // kiểm tra chọn dòng cần xóa
                this.CheckValidForDelete = function (sender, event) {
                    //Kiểm tra đã chọn dòng cần xóa?
                    if (new Grid().CheckRowSelectedPemission("<%= dtgList.MasterTableView.ClientID %>") == false) {
                        new Message().ShowObject(alertmsg_10081);
                        return false;
                    }
                    //Xác nhân thao tác         
                    return vHCSConfirmObject(alertmsg_10011, event, 330, 100, '');
                }

                // confirm trước khi gửi duyệt
                this.CheckValidForSubmit = function (sender, event) {
                    //Xác nhân thao tác         
                    return vHCSConfirmObject(alertmsg_10257, event, 330, 100, '');
                }


                // kiểm tra nghỉ bù và nghỉ phép ko được nhập leo năm
                this.CheckValidForSave = function (sender, event) {
                    var TypeID = document.getElementById("<%=dtpFromDate.ClientID%>").value;
                    if (TypeID == "6" || TypeID == "17") // nghỉ phép/nghỉ bù
                    {
                        alert(document.getElementById("<%=txtWorkPointTypeID.ClientID%>").value);
                        new Message().ShowObject(alertmsg_10256);
                        return false;
                    }
                    return true;
                }
            }

            // hide/unhide thông tin chi tiết nghỉ
            function setDisplay() {
                if (document.getElementById('MainContent_chkDetail').checked) { // Xem chi tiet    
                    document.getElementById('div1').style.display = "block";
                }
                else { // khong xem chi tiet
                    document.getElementById('div1').style.display = "none";
                }
            }

            // hide/unhide thông tin danh sách phiếu nghỉ
            function setDisplayListRecord() {
                if (document.getElementById('MainContent_chkListRecord').checked) { // Xem chi tiet    
                    document.getElementById('divListRecord').style.display = "block";
                }
                else { // khong xem chi tiet
                    document.getElementById('divListRecord').style.display = "none";
                }
            }

            // kiểm tra chọn nhân viên
            function dtgList_Validate(source, args) {
                var empid = document.getElementById("<%=hEmpID.ClientID%>").value;
                if (empid == "0" || empid == "")
                    document.getElementById('divEmpID').style.display = "block";
                else
                    document.getElementById('divEmpID').style.display = "none";
            }

            //---------------------- load form xong thì run mấy đoạn lệnh này
            // xem chi tiết phiếu nghỉ mặc định ko check
            //document.getElementById('MainContent_chkDetail').checked = false;
            setDisplay();

            // chỉ thể hiện check box ở phiếu nghỉ cuối cùng của đơn nghỉ nên ko cần thể hiện check all này
            document.getElementById('ctl00_MainContent_dtgList_ctl00_ctl02_ctl01_ClientSelectColumnSelectCheckBox').style.display = "none";

            // kiểm tra xem có bao nhiêu phiếu nghỉ trong 1 đơn thì thể hiện message
            var grid = document.getElementById("<%= dtgList.MasterTableView.ClientID %>");
            if (grid.rows.length > 1)
                document.getElementById('divMessage').style.display = "";
            else
                document.getElementById('divMessage').style.display = "none";

            function ClosePage() {
                try{
                window.close();
                }
                catch (err)
                {}
            }
        </script>
    </telerik:RadCodeBlock>
</asp:Content>
